﻿using System;
using System.Collections.Generic;
using System.Text;
using DotNetStar.OpenSDK.Payment;

namespace DotNetStar.OpenSDK.WeChat.Pay
{
    /// <summary>
    /// 关闭订单。适用于 H5支付/APP支付/公众平台支付/扫码支付。
    /// </summary>
    /// <remarks>
    /// 以下情况需要调用关单接口：商户订单支付失败需要生成新单号重新发起支付，要对原订单号调用关单，避免重复支付；系统下单后，用户支付超时，系统退出不再受理，避免用户继续，请调用关单接口。
    /// 注意：订单生成后不能马上调用关单接口，最短调用时间间隔为5分钟。
    /// </remarks>
    /// <seealso cref="WeChatPayApiRequest{WeChatPayApiResponse}" />
    public class CloseOrderApiRequest : WeChatPayApiRequest<WeChatPayApiResponse>
    {
        /// <summary>
        /// 初始化 <see cref="CloseOrderApiRequest"/> 类的新实例。
        /// </summary>
        /// <param name="config">支付配置。</param>
        /// <param name="requestUrl">关闭订单的 api 地址。若使用了沙箱地址，可以传入沙箱地址的 url。</param>
        public CloseOrderApiRequest(PaymentConfig config, string requestUrl= "https://api.mch.weixin.qq.com/pay/closeorder") 
            : base(requestUrl, config)
        {
        }
    }
}
